const urlAll = {
    'DEV': 'http://47.116.203.87', // 开发
    // 'PRO': '',
}

let BASEURL = urlAll['DEV'] // 调整当前环境

/*
* 全局请求封装
* @param path 请求路径
* @param method 请求类型(GET/POST/DELETE等)
* @oaram data 请求体数据
* @param loading 请求未完成是是否显示加载中，默认为true
*/
// 路径  类型    发送的数据内容   提示加载
export default (path, method, data = {}, loading = false) => {
	
    let token = ''; // 初始值为空字符串
    
    // 使用uni.getStorageSync判断本地是否有token
    
    if(uni.getStorageSync('token')){
        token = uni.getStorageSync('token');
        console.log('有token时发送的接口请求');
        // console.log('token值为',token);
		
    }else{
        console.log('无token时发送的接口请求');
    }
    
	
    if (loading) {
        // 展示加载状态
        uni.showLoading({
            title: "加载中",
            mask: true
        });
    };
    //根据token进行调用函数
    if (token != '') {
        // 有token时
        return tokenRequest(path, method, data, loading, token);
    } else {
        // token为空时
        return noTokenRequest(path, method, data, loading);
    }
};

// 无token时发送请求函数
function noTokenRequest(path, method, data, loading) {
    return new Promise((resolve, reject) => {
        uni.request({
            url: BASEURL + path,// 路径
            method: method,// 类型
            data,// 内容
            // 请求成功时的回调函数
            success(response) {
                // console.log('%c响应拦截：', ' background:green', response);
                /* if (response.data.code === 3001) {
					// logout()
				} */
                /* if (response.data.code !== 20) {
					uni.showToast({
						icon: "none",
						duration: 4000,
						title: response.data.msg
					});
				} */
                console.log(response.data)
                resolve(response.data);
            },
            // 请求失败时的回调函数
            fail(err) {
                uni.showToast({
                    icon: "none",
                    title: '服务响应失败'
                });
                console.error(err);
                reject(err);
            },
            // 请求结束时的回调函数
            complete() {
                // 隐藏提示框
                uni.hideLoading();
            }
        });
    });
}


// 有token时发送请求函数
function tokenRequest(path, method, data, loading, token) {
    return new Promise((resolve, reject) => {
        uni.request({
            url: BASEURL + path,
            method: method,
            data,
            header: {
                'Authorization': 'Bearer'+ token
            },
            success(response) {
                // console.log('%c响应拦截：', ' background:green', response);
                // if (response.data.code === 40101) {
                //     // logout()
                // }
                console.log(response.data)
                resolve(response.data);
            },
            fail(err) {
                uni.showToast({
                    icon: "none",
                    title: '服务响应失败'
                });
                console.error(err);
                reject(err);
            },
            complete() {
                uni.hideLoading();
            }
        });
    });
}